package com.agv.core.dao.dataExtractor;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ResultSetExtractor;

import com.agv.core.objectDomain.Organizacion;
import com.agv.core.objectDomain.Perfil;
import com.agv.core.objectDomain.Usuario;

public class UserResultSetExtractor implements ResultSetExtractor {

	public Usuario extractData(ResultSet rs) throws SQLException,
			DataAccessException {
		Usuario usuario = new Usuario();
		Perfil perfil = new Perfil();
		Organizacion organizacion = new Organizacion();

		while (rs.next()) {
			usuario.setIdUsuario(rs.getInt("id_usuario"));
			usuario.setNbUsuario(rs.getString("nb_usuario").trim());
			usuario.setNbMail(rs.getString("nb_mail").trim());
			usuario.setNbDepto(rs.getString("nb_depto").trim());
			usuario.setPwContra(rs.getString("pw_contra") != null ? rs
					.getString("pw_contra").trim() : null);
			usuario.setTmUltimoAcceso(rs.getTimestamp("tm_ultimo_acceso"));

			organizacion.setIdOrg(rs.getInt("id_org"));
			organizacion.setNbOrg(rs.getString("nb_org").trim());
			usuario.setOrganizacion(organizacion);

			perfil.setIdPerfil(rs.getInt("id_perfil"));
			perfil.setTpPerfil(rs.getString("tp_perfil").trim());
			perfil.setStPerfil(rs.getInt("st_perfil"));
			usuario.setPerfil(perfil);
		}
		return usuario;
	}
}
